-module(sc_sup).
-behaviour(supervisor).

%% API
-export([start_link/0,
        start_child/2]).

%% Supervisor callbacks
-export([init/1]).

start_link() ->
    supervisor:start_link({local, ?MODULE}, ?MODULE, []).

start_child(Value, LeaseTime) ->
    supervisor:start_child(?MODULE, [Value, LeaseTime]).

init([]) ->
    Element = {sc_element, {sc_element, start_link, []}, 
                temporary, brutal_kill, worker, [sc_element]},   
    %% 标志名 启动的指定  重启策略                                                 关闭方式                                工作类型 所依赖的模块
    %%                  permanent 关闭立即重启 temporary 关闭就不再启动了         infinity 向进程发送指令后等待进程自己关闭 
    %%                  transient 仅在出错时才重启                               brutal_kill 立即关闭
    %%                                                                          秒数 一定秒数内不关闭立即结束
    Children = [Element],
    RestartStrategy = {simple_one_for_one, 0, 1},          %% 0 1 代表不自动重启
    {ok, {RestartStrategy, Children}}.
